package com.blog.dao;

import java.util.List;

import com.blog.BO.AdminBO;
import com.blog.entity.Admin;

/**
 * @author 蒲鑫
 * @function 功能：管理员表相关操作
 * @date 2023年5月31日
 */
public interface AdminDao {
	/**
	 * @author 蒲鑫
	 * @function 功能：通过管理员账户密码查询该用户
	 * @parameter 传入参数：管理员账号adminName，管理员密码adminpass
	 * @return 返回值：返回查询到的Admin对象/没有查询就返回null
	 * @date 2023年5月31日
	 */
	public Admin selectAdminByAdminNameAndAdminPass(String adminName,String adminPass);

	/**
	 * @author 蒲鑫
	 * @function 功能：查询符合条件的所有的管理员信息
	 * @parameter 传入参数：查询条件BO类中的adminBO（管理员id，管理员名模糊查找，管理员等级，开始时间（包含），结束时间（包含）），第几页pageNum，每一页大小pageSize
	 * @return 返回值：返回所有符合条件的管理员List<Admin>
	 * @date 2023年5月31日
	 */
	List<Admin> selectAdmin(AdminBO adminBO,int pageNum,int pageSize);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过管理员账户查询该用户
	 * @parameter 传入参数：管理员账号adminName
	 * @return 返回值：返回查询到的Admin对象/没有查询就返回null
	 * @date 2023年5月31日
	 */
	public Admin selectAdminByAdminName(String adminName);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：查询管理员表的全部条数
	 * @parameter 传入参数：
	 * @return 返回值：返回管理员表全部条数
	 * @date 2023年5月31日
	 */
	public int selectAdminNum();
	
	/**
	 * @author 蒲鑫
	 * @function 功能：添加一条管理员信息
	 * @parameter 传入参数：输入好的管理员信息
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int insertAdmin(Admin admin);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过管理员id删除管理员
	 * @parameter 传入参数：管理员id
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int deleteAdminByAdminId(int adminId);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过传入的管理员更新所属id管理员信息
	 * @parameter 传入参数：修改后的管理员数据
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int updateAdmin(Admin admin);
}
